﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.CompilerServices;

using IBApi;

namespace IBRx {
	public class MarketScanners : IBResponse { }

	public class ScannerParameters : MarketScanners {
		public string Xml { get; private set; }

		[MethodImplAttribute(MethodImplOptions.AggressiveInlining)]
		public ScannerParameters(string xml) {
			this.Xml = xml;
		}
	}

	public class ScannerData : MarketScanners {
		public int ReqId { get; private set; }
		public int Rank { get; private set; }
		public ContractDetails ContractDetails { get; private set; }
		public string Distance { get; private set; }
		public string Benchmark { get; private set; }
		public string Projection { get; private set; }
		public string LegsStr { get; private set; }

		[MethodImplAttribute(MethodImplOptions.AggressiveInlining)]
		public ScannerData(int reqId, int rank, ContractDetails contractDetails, string distance, string benchmark, string projection, string legsStr) {
			this.ReqId = reqId;
			this.Rank = rank;
			this.ContractDetails = contractDetails;
			this.Distance = distance;
			this.Benchmark = benchmark;
			this.Projection = projection;
			this.LegsStr = legsStr;
		}
	}

	public class ScannerDataEnd : MarketScanners {
		public int ReqId { get; private set; }

		[MethodImplAttribute(MethodImplOptions.AggressiveInlining)]
		public ScannerDataEnd(int reqId) {
			this.ReqId = reqId;
		}
	}
}
